ビルド サーバへの Workspace ONE UEM API の統合

ご利用のビルド サーバを Workspace ONE UEM と統合することにより、社内アプリの新しいビルドを Workspace ONE UEM Console (AirWatch コンソール) に自動的に配信することができるようになります。

現在の Workspace ONE UEM プラグイン

Workspace ONE UEM には Jenkins ビルド サーバ用のプラグインが用意されています。他のビルド システムをご利用の場合は、Workspace ONE UEM API を使用してビルド サーバを構成することで、更新されたバージョンのアプリを Workspace ONE UEM に配信できます。

統合に必要な API

ビルド サーバを構成して、所定の API を次に示す順序で使用してください。これらの API は、アプリのアップロード、組織グループへの適用、スマート グループへのアプリの割り当て、およびデバイスへのアプリの公開を行います。また、アプリの削除を実行してシステムから古いビルドを消去することもできます。

詳細は、My.WorkspaceONE.com の Resource ポータルにある Workspace ONE UEM REST API ガイドを参照してください。

 

1. BLOB のアップロード – 社内アプリ パッケージを単一のバイト ストリームとしてアップロードします。この API のレスポンスは「BLOB ID」を表す数値です。この ID は、アプリを Workspace ONE UEM Console に保存するために、「社内アプリの保存」API (または「社内アプリのインストール:社内アプリのインストール開始」) で使用できます。

https://host/api/mam/blobs/uploadblob?filename={filename}&organizationgroupid={organizationgroupid}&moduleType=Application

レスポンスのペイロード

XML

<?xml version="1.0" encoding="UTF-8"?>
<EntityV1Model>
  <Value>1</Value>
  <Id>1</Id>
  <Uuid>string</Uuid>
</EntityV1Model>

 

JSON

{  
   "Value":123,
   "id":1234,
   "uuid":"0d0941b8-1ed4-47e0-8705-4e5953803c83"
}

 

他に、アプリのチャンク データをアップロードする方法もあります。アプリの各チャンクには、チャンクのサイズ、シーケンス番号、バイト データが含まれます。アプリを保存する「beginInstall」API ではチャンク データの TransactionId を指定します。

https://host/api/mam/apps/internal/uploadchunk

リクエストのペイロード

XML

<InternalAppChunk
xmlns="http://www.air-watch.com/servicemodel/resources">
<TransactionId>String</TransactionId>
    <ChunkData>string</ChunkData>
    <ChunkSequenceNumber>1</ChunkSequenceNumber>
    <TotalApplicationSize>1</TotalApplicationSize>
    <ChunkSize>1</ChunkSize>
</InternalAppChunk>

 

JSON

{  
   "TransactionId":"テキスト値",
   "ChunkData":"QA==",
   "ChunkSequenceNumber":5,
   "TotalApplicationSize":6,
   "ChunkSize":7
}

 

 

2. 社内アプリのインストール:社内アプリのインストール開始 (または「社内アプリの保存」) – アプリを保存します。このアプリは、「BLOB のアップロード」API でアップロードしたアプリ パッケージの BLOB またはチャンクです。このアプリについて、サポート対象モデルの展開モードを指定することができます。アプリを保存したら、インストールを開始するために「/internal/{applicationid}/assignments」を使用してアプリに割り当てを追加します。

同じバージョンのアプリの異なるビルドを展開する場合は、「begininstall」API で追加の入力フィールド「AppVersion」を指定します。

https://host/api/mam/apps/internal/begininstall 

リクエストのペイロード

XML

<?xml version="1.0"?>
<InternalAppChunkTranscation
xmlns="http://www.air-watch.com/servicemodel/resources">
<TransactionId>string</TransactionId>
<BlobId>string</BlobId>
<DeviceType>string</DeviceType>
<ApplicationName>string</ApplicationName>
<SupportedModels>
<Model>
<Model>
<ApplicationId>1</ApplicationId>
<ModelId>1</ModelId>
<ModelName>string</ModelName>
</Model>
        </Model>
</SupportedModels>
<PushMode>string</PushMode>
    <Description>string</Description>
    <SupportEmail>string</SupportEmail>
    <SupportPhone>string</SupportPhone>
    <Developer>string</Developer>
    <DeveloperEmail>string</DeveloperEmail>
    <DeveloperPhone>string</DeveloperPhone>
    <AutoUpdateVersion>true</AutoUpdateVersion>
    <LocationGroupId>1</LocationGroupId>
    <EnableProvisioning>true</EnableProvisioning>
    <UploadViaLink>true</UploadViaLink>
    <BundleId>string</BundleId>
    <ActualFileVersion>string</ActualFileVersion>
    <AppVersion>string</AppVersion>
    <FileName>string</FileName>   
<SupportedProcessorArchitecture>string</SupportedProcessorArchitecture>
</InternalAppChunkTranscation>

 

JSON

{  
   "TransactionId":"string",
   "BlobId":"string",
   "DeviceType":"string",
   "ApplicationName":"string",
   "SupportedModels":{  
      "Model":[  
         {  
            "ApplicationId":0,
            "ModelId":0,
            "ModelName":"string"
         }
      ]
   },
   "PushMode":"string",
   "Description":"string",
   "SupportEmail":"string",
   "SupportPhone":"string",
   "Developer":"string",
   "DeveloperEmail":"string",
   "DeveloperPhone":"string",
   "AutoUpdateVersion":true,
   "LocationGroupId":0,
   "EnableProvisioning":true,
   "UploadViaLink":true,
   "BundleId":"string",
   "ActualFileVersion":"string",
   "AppVersion":"string",
   "FileName":"string",
   "SupportedProcessorArchitecture":"string"
}

 

 

3. 組織グループの検索 – URL にパラメータを指定して組織グループの詳細を検索します。

http://host/api/system/groups/search?name={name}&type={type}&groupid={groupid}&orderby={orderby}&page={page}&pagesize={pagesize}&sortorder={sortorder}

レスポンスのペイロード

XML

<OrganizationGroupPagedSearchResult
    xmlns="http://www.air-watch.com/webapi/resources">
    <OrganizationGroups>
        <LocationGroupModel>
            <Id>1</Id>
            <Uuid>string</Uuid>
            <Name>string</Name>
            <GroupId>string</GroupId>
            <LocationGroupType>string</LocationGroupType>
            <Country>string</Country>
            <Locale>string</Locale>
            <AddDefaultLocation>string</AddDefaultLocation>
            <CreatedOn>string</CreatedOn>
            <LgLevel>1</LgLevel>
            <Users>string</Users>
            <Admins>string</Admins>
            <Devices>string</Devices>
            <ConcurrencyId>string</ConcurrencyId>
        </LocationGroupModel>
    </OrganizationGroups>
    <AdditionalInfo>
        <Links>
            <Links
                xmlns="http://www.air-watch.com/webapi/resources">
                <Rel>string</Rel>
                <Href>string</Href>
                <Title>string</Title>
            </Links>
        </Links>
        <Id>1</Id>
        <Uuid>string</Uuid>
    </AdditionalInfo>
    <TotalResults>1</TotalResults>
</OrganizationGroupPagedSearchResult>

 

JSON

{  
   "OrganizationGroups":[  
      {  
         "Id":1,
         "Uuid":"8a609fbe-e68a-4bd8-893d-a10df33c83bb",
         "Name":"テキスト値",
         "GroupId":"テキスト値",
         "LocationGroupType":"テキスト値",
         "Country":"テキスト値",
         "Locale":"テキスト値",
         "AddDefaultLocation":"テキスト値",
         "CreatedOn":"テキスト値",
         "LgLevel":8,
         "Users":"テキスト値",
         "Admins":"テキスト値",
         "Devices":"テキスト値",
         "ConcurrencyId":"テキスト値"
      }
   ],
   "AdditionalInfo":{  
      "Links":[  

      ],
      "id":1234,
      "uuid":"10595346-6eb3-4eb0-921b-a38826f90b93"
   },
   "TotalResults":1

 

 

4. スマート グループの検索 – 所定のクエリ文字列を使用してスマート グループを検索します。Workspace ONE UEM では、このスマート グループに属するデバイスにアプリを割り当てます。

 https://host/api/mdm/smartgroups/search?name={name}&organizationgroupid={organizationgroupid}&managedbyorganizationgroupid={managedbyorganizationgroupid}&modifiedfrom={modifiedfrom}&modifiedtill={modifiedtill}&page={page}&pagesize={pagesize}&orderby={orderby}&sortorder={sortorder}

レスポンスのペイロード

XML

<SmartGroupSearchResult
    xmlns="http://www.air-watch.com/servicemodel/resources">
    <SmartGroups
        xmlns="http://www.air-watch.com/servicemodel/resources">
        <Name>string</Name>
        <SmartGroupID>1</SmartGroupID>
        <SmartGroupUuid>string</SmartGroupUuid>
        <CriteriaType>string</CriteriaType>
        <ManagedByOrganizationGroupId>string</ManagedByOrganizationGroupId>
        <ManagedByOrganizationGroupUuid>string</ManagedByOrganizationGroupUuid>
        <ManagedByOrganizationGroupName>string</ManagedByOrganizationGroupName>
        <Devices>1</Devices>
        <Assignments>1</Assignments>
        <Exclusions>1</Exclusions>
        <OrganizationGroups>
            <OrganizationGroups>
                <Name>string</Name>
                <Id>string</Id>
                <Uuid>string</Uuid>
            </OrganizationGroups>
        </OrganizationGroups>
        <UserGroups>
            <UserGroups>
                <Name>string</Name>
                <Id>string</Id>
            </UserGroups>
        </UserGroups>
        <Tags>
            <Tags>
                <Id>string</Id>
                <Name>string</Name>
            </Tags>
        </Tags>
        <Ownerships>
            <Ownerships>string</Ownerships>
        </Ownerships>
        <Platforms>
            <Platforms>string</Platforms>
        </Platforms>
        <Models>
            <Models>string</Models>
        </Models>
        <OperatingSystems>
            <OperatingSystems>
                <DeviceType>string</DeviceType>
                <Operator>string</Operator>
                <Value>string</Value>
            </OperatingSystems>
        </OperatingSystems>
        <UserAdditions>
            <UserAdditions>
                <Id>string</Id>
                <Name>string</Name>
            </UserAdditions>
        </UserAdditions>
        <DeviceAdditions>
            <DeviceAdditions>
                <Id>string</Id>
                <Name>string</Name>
                <Model>string</Model>
                <OSVersion>string</OSVersion>
                <Username>string</Username>
                <Platform>string</Platform>
                <Ownership>string</Ownership>
            </DeviceAdditions>
        </DeviceAdditions>
        <UserExclusions>
            <UserExclusions>
                <Id>string</Id>
                <Name>string</Name>
            </UserExclusions>
        </UserExclusions>
        <DeviceExclusions>
            <DeviceExclusions>
                <Id>string</Id>
                <Name>string</Name>
                <Model>string</Model>
                <OSVersion>string</OSVersion>
                <Username>string</Username>
                <Platform>string</Platform>
                <Ownership>string</Ownership>
            </DeviceExclusions>
        </DeviceExclusions>
        <UserGroupExclusions>
            <UserGroupExclusions>
                <Name>string</Name>
                <Id>string</Id>
            </UserGroupExclusions>
        </UserGroupExclusions>
    </SmartGroups>
    <Page>1</Page>
    <PageSize>1</PageSize>
    <Total>1</Total>
</SmartGroupSearchResult>

 

JSON

{  
   "SmartGroups":[  
      {  
         "Name":"All Devices",
         "SmartGroupID":1,
         "SmartGroupUuid":"15529a89-bb69-493d-9cab-90883dc012a2",
         "CriteriaType":"All",
         "ManagedByOrganizationGroupId":"1",
         "ManagedByOrganizationGroupUuid":"e8eb6624-f52c-4e1a-b575-720f53da3947",
         "ManagedByOrganizationGroupName":"組織グループ名",
         "Devices":4,
         "Assignments":5,
         "Exclusions":6,
         "OrganizationGroups":[  
            {  
               "Name":"組織グループ名",
               "Id":"576",
               "Uuid":"5F926C4A-DA3D-4490-9478-A8792DBD249A"
            }
         ],
         "UserGroups":[  
            {  
               "Name":"ユーザー グループ名",
               "Id":"123"
            }
         ],
         "Tags":[  
            {  
               "Id":"123",
               "Name":"ソフトウェア"
            }
         ],
         "Ownerships":[  
            "テキスト値"
         ],
         "Platforms":[  
            "テキスト値"
         ],
         "Models":[  
            "テキスト値"
         ],
         "OperatingSystems":[  
            {  
               "DeviceType":"Android",
               "Operator":"GreaterThan",
               "Value":"Android 2.2.1"
            }
         ],
         "UserAdditions":[  
            {  
               "Id":"512",
               "Name":"TestUser"
            }
         ],
         "DeviceAdditions":[  
            {  
               "Id":"123",
               "Name":"test Windows 8.1 Windows Desktop 6.3.9600 KXW1",
               "Model":"Android",
               "OSVersion":"8.0.0",
               "Username":"awuser",
               "Platform":"Android",
               "Ownership":"C"
            }
         ],
         "UserExclusions":[  
            {  

            }
         ],
         "DeviceExclusions":[  
            {  

            }
         ],
         "UserGroupExclusions":[  
            {  

            }
         ]
      }
   ],
   "Page":1,
   "PageSize":2,
   "Total":3
}

 

 

5. 社内アプリへのスマート グループの割り当て – 社内アプリにスマート グループを割り当てます。アプリの展開モードが「自動」の場合、これによりインストール アクションが実行されます。

https://host/api/mam/apps/internal/{applicationid}/assignments (使用する HTTP メソッド – POST、サポートされているメソッド:POST、PUT)

リクエストのペイロード

XML

<?xml version="1.0"?>
<AppAssignments
    xmlns="http://www.air-watch.com/webapi/resources">
    <SmartGroupIds>
        <SmartGroupIds>1</SmartGroupIds>
    </SmartGroupIds>
    <DeploymentParameters>
        <PushMode>string</PushMode>
        <EffectiveDate>1970-01-01T00:00:00.001Z</EffectiveDate>
        <RemoveOnUnEnroll>true</RemoveOnUnEnroll>
        <ApplicationBackup>true</ApplicationBackup>
        <AutoUpdateDevicesWithPreviousVersion>true</AutoUpdateDevicesWithPreviousVersion>
        <AdaptiveManagement>true</AdaptiveManagement>
        <ApplicationTransformIds>
            <ApplicationTransformIds>1</ApplicationTransformIds>
        </ApplicationTransformIds>
        <AllowManagement>true</AllowManagement>
        <MacOsDesiredStateManagement>true</MacOsDesiredStateManagement>
        <RequiresApproval>true</RequiresApproval>
        <Uuid>string</Uuid>
    </DeploymentParameters>
    <Uuid>string</Uuid>
</AppAssignments>

 

JSON

{  
   "SmartGroupIds":[  
      1
   ],
   "DeploymentParameters":{  
      "PushMode":"Auto",
      "EffectiveDate":"2018-08-24T15:13:07.3221219-04:00",
      "RemoveOnUnEnroll":true,
      "ApplicationBackup":true,
      "AutoUpdateDevicesWithPreviousVersion":true,
      "AdaptiveManagement":true,
      "ApplicationTransformIds":[  
         1
      ],
      "AllowManagement":true,
      "MacOsDesiredStateManagement":true,
      "RequiresApproval":true,
      "uuid":"4588fa2e-abe3-45e8-8570-a0a1faee2c9f"
   },
   "uuid":"f45d2824-3533-4c77-b249-07e56a90aa22"
}

レスポンスのペイロードはありません

 

6. 割り当てられたデバイス (社内アプリ) の取得 – この社内アプリへの割り当てを持つデバイスのリストを取得します。

https://host/api/mam/apps/internal/applicationid/devices

レスポンスのペイロード

XML

<?xml version="1.0"?>
<DeviceList>
  <DeviceId>1</DeviceId>
  <Page>1</Page>
  <PageSize>1</PageSize>
  <Total>1</Total>
</DeviceList>

 

JSON

{  
   "DeviceId":[  
      1
   ],
   "Page":1,
   "PageSize":2,
   "Total":3
}

 

 

7. デバイスへの社内アプリのインストール – アプリをデバイスにインストールします。アプリが「オンデマンド」に設定されている場合は、「割り当てられたデバイス (社内アプリ) の取得」API で取得したデバイスごとに、この API を実行してください (「自動」配信のアプリが割り当てられたデバイスに対しては、割り当て API を呼び出したタイミングですぐにインストールが実行されます)。

https://host/api/mam/apps/internal/{applicationid}/install

レスポンスのペイロード

XML

<DeviceInfo
    xmlns="http://www.air-watch.com/servicemodel/resources">
    <DeviceId>1</DeviceId>
    <Udid>string</Udid>
    <SerialNumber>string</SerialNumber>
    <MacAddress>string</MacAddress>
</DeviceInfo>

 

JSON


{  
   "DeviceId":1,
   "Udid":"6bf0f04c73681fbecfc3eb4f13cbf05b",
   "SerialNumber":"LGH871c18f631a",
   "MacAddress":"0x848506B900BA"
}

 

 

8. 社内アプリの削除 (オプション) – アプリ ID を指定して、コンソールから社内アプリを削除します。この API は、古いビルドを消去するために実行します。

https://host/api/mam/apps/Internal/{Applicationid}

 

Other Languages: English

免責事項:これは英文の記事「Integrate Build Servers with Workspace ONE UEM APIs」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Have more questions? Submit a request

1 Comments

Article is closed for comments.