Cree un nuevo objeto accessPackageResourceRequest para solicitar la adición de un recurso a un catálogo de paquetes de acceso, la actualización de un recurso o la eliminación de un recurso de un catálogo. Un recurso debe incluirse en un catálogo de paquetes de acceso para poder agregar un rol de ese recurso a un paquete de acceso.
Para agregar un grupo de Microsoft Entra como un recurso a un catálogo, establezca requestTypeadminAdden y un resource objeto que represente el recurso. El valor de la propiedad originSystem dentro de resource debe ser AadGroup y el valor de originId es el identificador del grupo.
Para agregar una aplicación Microsoft Entra como un recurso a un catálogo, establezca requestTypeadminAdden y un resource objeto que represente el recurso. El valor de la propiedad originSystem dentro de resource debe ser AadApplication y el valor de originId es el identificador de servicePrincipal.
Para agregar un sitio de SharePoint Online como recurso a un catálogo, establezca requestTypeadminAdden y un resource elemento que represente el recurso. El valor de la propiedad originSystem dentro de resource debe ser SharePointOnline y el valor de originId es el URI del sitio.
Para quitar un recurso de un catálogo, establezca requestTypeadminRemoveen y el resource objeto para que contenga el id objeto de recurso que se va a quitar. El objeto de recurso se puede recuperar mediante recursos de lista.
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso
Permisos con privilegios mínimos
Permisos con privilegios más altos
Delegado (cuenta profesional o educativa)
EntitlementManagement.ReadWrite.All
No disponible.
Delegado (cuenta personal de Microsoft)
No admitida.
No admitida.
Aplicación
EntitlementManagement.ReadWrite.All
No disponible.
Sugerencia
En escenarios delegados con cuentas profesionales o educativas, al usuario que ha iniciado sesión también se le debe asignar un rol de administrador con permisos de rol admitidos mediante una de las siguientes opciones:
En escenarios de solo aplicación, se puede asignar a la aplicación que realiza la llamada uno de los roles admitidos anteriores en lugar del permiso de EntitlementManagement.ReadWrite.All aplicación. El rol de propietario del catálogo tiene menos privilegios que el permiso de aplicación EntitlementManagement.ReadWrite.All .
Además, también debe tener los siguientes permisos en el recurso que se va a agregar:
Para agregar un grupo de Microsoft Entra como recurso a un catálogo:
Si usa permisos delegados, el usuario que solicita agregar un grupo debe ser propietario del grupo o en un rol de directorio que le permita modificar grupos.
Si usa permisos de aplicación, también se debe asignar el permiso a la aplicación que solicita agregar el Group.ReadWrite.All grupo.
Para agregar una aplicación Microsoft Entra como recurso a un catálogo:
Si usa permisos delegados, el usuario que solicita agregar una aplicación debe ser propietario de la aplicación o en un rol de directorio que le permita modificar las asignaciones de roles de aplicación.
Si usa permisos de aplicación, a la aplicación que solicita agregar servicePrincipal también se le debe asignar el permiso Application.ReadWrite.All .
Para agregar un sitio de SharePoint Online como recurso a un catálogo:
Si usa permisos delegados, el usuario que quiere agregar el sitio debe tener un rol que le permita modificar los roles de sitio de SharePoint, como el rol Administrador de SharePoint .
En el cuerpo de la solicitud, proporcione una representación JSON de un objeto accessPackageResourceRequest . Incluya la resource relación con un objeto accessPackageResource como parte de la solicitud y un catalog objeto que contenga su id.
Si se ejecuta correctamente, este método devuelve un 201 Created código de respuesta y un nuevo objeto accessPackageResourceRequest en el cuerpo de la respuesta.
Ejemplos
Ejemplo 1: Creación de un accessPackageResourceRequest para agregar un grupo como recurso
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessPackageResourceRequest
{
RequestType = AccessPackageRequestType.AdminAdd,
Resource = new AccessPackageResource
{
DisplayName = "Test group",
OriginId = "8ab659d0-3839-427d-8c54-5ae92f0b3e2e",
OriginSystem = "AadGroup",
},
Catalog = new AccessPackageCatalog
{
Id = "beedadfe-01d5-4025-910b-84abb9369997",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.EntitlementManagement.ResourceRequests.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessPackageResourceRequest accessPackageResourceRequest = new AccessPackageResourceRequest();
accessPackageResourceRequest.setRequestType(AccessPackageRequestType.AdminAdd);
AccessPackageResource resource = new AccessPackageResource();
resource.setDisplayName("Test group");
resource.setOriginId("8ab659d0-3839-427d-8c54-5ae92f0b3e2e");
resource.setOriginSystem("AadGroup");
accessPackageResourceRequest.setResource(resource);
AccessPackageCatalog catalog = new AccessPackageCatalog();
catalog.setId("beedadfe-01d5-4025-910b-84abb9369997");
accessPackageResourceRequest.setCatalog(catalog);
AccessPackageResourceRequest result = graphClient.identityGovernance().entitlementManagement().resourceRequests().post(accessPackageResourceRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AccessPackageResourceRequest;
use Microsoft\Graph\Generated\Models\AccessPackageRequestType;
use Microsoft\Graph\Generated\Models\AccessPackageResource;
use Microsoft\Graph\Generated\Models\AccessPackageCatalog;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AccessPackageResourceRequest();
$requestBody->setRequestType(new AccessPackageRequestType('adminAdd'));
$resource = new AccessPackageResource();
$resource->setDisplayName('Test group');
$resource->setOriginId('8ab659d0-3839-427d-8c54-5ae92f0b3e2e');
$resource->setOriginSystem('AadGroup');
$requestBody->setResource($resource);
$catalog = new AccessPackageCatalog();
$catalog->setId('beedadfe-01d5-4025-910b-84abb9369997');
$requestBody->setCatalog($catalog);
$result = $graphServiceClient->identityGovernance()->entitlementManagement()->resourceRequests()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.access_package_resource_request import AccessPackageResourceRequest
from msgraph.generated.models.access_package_request_type import AccessPackageRequestType
from msgraph.generated.models.access_package_resource import AccessPackageResource
from msgraph.generated.models.access_package_catalog import AccessPackageCatalog
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AccessPackageResourceRequest(
request_type = AccessPackageRequestType.AdminAdd,
resource = AccessPackageResource(
display_name = "Test group",
origin_id = "8ab659d0-3839-427d-8c54-5ae92f0b3e2e",
origin_system = "AadGroup",
),
catalog = AccessPackageCatalog(
id = "beedadfe-01d5-4025-910b-84abb9369997",
),
)
result = await graph_client.identity_governance.entitlement_management.resource_requests.post(request_body)
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessPackageResourceRequest
{
RequestType = AccessPackageRequestType.AdminAdd,
Resource = new AccessPackageResource
{
OriginId = "e81d7f57-0840-45e1-894b-f505c1bdcc1f",
OriginSystem = "AadApplication",
},
Catalog = new AccessPackageCatalog
{
Id = "beedadfe-01d5-4025-910b-84abb9369997",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.EntitlementManagement.ResourceRequests.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewAccessPackageResourceRequest()
requestType := graphmodels.ADMINADD_ACCESSPACKAGEREQUESTTYPE
requestBody.SetRequestType(&requestType)
resource := graphmodels.NewAccessPackageResource()
originId := "e81d7f57-0840-45e1-894b-f505c1bdcc1f"
resource.SetOriginId(&originId)
originSystem := "AadApplication"
resource.SetOriginSystem(&originSystem)
requestBody.SetResource(resource)
catalog := graphmodels.NewAccessPackageCatalog()
id := "beedadfe-01d5-4025-910b-84abb9369997"
catalog.SetId(&id)
requestBody.SetCatalog(catalog)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
resourceRequests, err := graphClient.IdentityGovernance().EntitlementManagement().ResourceRequests().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessPackageResourceRequest accessPackageResourceRequest = new AccessPackageResourceRequest();
accessPackageResourceRequest.setRequestType(AccessPackageRequestType.AdminAdd);
AccessPackageResource resource = new AccessPackageResource();
resource.setOriginId("e81d7f57-0840-45e1-894b-f505c1bdcc1f");
resource.setOriginSystem("AadApplication");
accessPackageResourceRequest.setResource(resource);
AccessPackageCatalog catalog = new AccessPackageCatalog();
catalog.setId("beedadfe-01d5-4025-910b-84abb9369997");
accessPackageResourceRequest.setCatalog(catalog);
AccessPackageResourceRequest result = graphClient.identityGovernance().entitlementManagement().resourceRequests().post(accessPackageResourceRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AccessPackageResourceRequest;
use Microsoft\Graph\Generated\Models\AccessPackageRequestType;
use Microsoft\Graph\Generated\Models\AccessPackageResource;
use Microsoft\Graph\Generated\Models\AccessPackageCatalog;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AccessPackageResourceRequest();
$requestBody->setRequestType(new AccessPackageRequestType('adminAdd'));
$resource = new AccessPackageResource();
$resource->setOriginId('e81d7f57-0840-45e1-894b-f505c1bdcc1f');
$resource->setOriginSystem('AadApplication');
$requestBody->setResource($resource);
$catalog = new AccessPackageCatalog();
$catalog->setId('beedadfe-01d5-4025-910b-84abb9369997');
$requestBody->setCatalog($catalog);
$result = $graphServiceClient->identityGovernance()->entitlementManagement()->resourceRequests()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.access_package_resource_request import AccessPackageResourceRequest
from msgraph.generated.models.access_package_request_type import AccessPackageRequestType
from msgraph.generated.models.access_package_resource import AccessPackageResource
from msgraph.generated.models.access_package_catalog import AccessPackageCatalog
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AccessPackageResourceRequest(
request_type = AccessPackageRequestType.AdminAdd,
resource = AccessPackageResource(
origin_id = "e81d7f57-0840-45e1-894b-f505c1bdcc1f",
origin_system = "AadApplication",
),
catalog = AccessPackageCatalog(
id = "beedadfe-01d5-4025-910b-84abb9369997",
),
)
result = await graph_client.identity_governance.entitlement_management.resource_requests.post(request_body)
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessPackageResourceRequest
{
RequestType = AccessPackageRequestType.AdminAdd,
Resource = new AccessPackageResource
{
OriginId = "https://microsoft.sharepoint.com/sites/Example",
OriginSystem = "SharePointOnline",
},
Catalog = new AccessPackageCatalog
{
Id = "beedadfe-01d5-4025-910b-84abb9369997",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.EntitlementManagement.ResourceRequests.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewAccessPackageResourceRequest()
requestType := graphmodels.ADMINADD_ACCESSPACKAGEREQUESTTYPE
requestBody.SetRequestType(&requestType)
resource := graphmodels.NewAccessPackageResource()
originId := "https://microsoft.sharepoint.com/sites/Example"
resource.SetOriginId(&originId)
originSystem := "SharePointOnline"
resource.SetOriginSystem(&originSystem)
requestBody.SetResource(resource)
catalog := graphmodels.NewAccessPackageCatalog()
id := "beedadfe-01d5-4025-910b-84abb9369997"
catalog.SetId(&id)
requestBody.SetCatalog(catalog)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
resourceRequests, err := graphClient.IdentityGovernance().EntitlementManagement().ResourceRequests().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessPackageResourceRequest accessPackageResourceRequest = new AccessPackageResourceRequest();
accessPackageResourceRequest.setRequestType(AccessPackageRequestType.AdminAdd);
AccessPackageResource resource = new AccessPackageResource();
resource.setOriginId("https://microsoft.sharepoint.com/sites/Example");
resource.setOriginSystem("SharePointOnline");
accessPackageResourceRequest.setResource(resource);
AccessPackageCatalog catalog = new AccessPackageCatalog();
catalog.setId("beedadfe-01d5-4025-910b-84abb9369997");
accessPackageResourceRequest.setCatalog(catalog);
AccessPackageResourceRequest result = graphClient.identityGovernance().entitlementManagement().resourceRequests().post(accessPackageResourceRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AccessPackageResourceRequest;
use Microsoft\Graph\Generated\Models\AccessPackageRequestType;
use Microsoft\Graph\Generated\Models\AccessPackageResource;
use Microsoft\Graph\Generated\Models\AccessPackageCatalog;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AccessPackageResourceRequest();
$requestBody->setRequestType(new AccessPackageRequestType('adminAdd'));
$resource = new AccessPackageResource();
$resource->setOriginId('https://microsoft.sharepoint.com/sites/Example');
$resource->setOriginSystem('SharePointOnline');
$requestBody->setResource($resource);
$catalog = new AccessPackageCatalog();
$catalog->setId('beedadfe-01d5-4025-910b-84abb9369997');
$requestBody->setCatalog($catalog);
$result = $graphServiceClient->identityGovernance()->entitlementManagement()->resourceRequests()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.access_package_resource_request import AccessPackageResourceRequest
from msgraph.generated.models.access_package_request_type import AccessPackageRequestType
from msgraph.generated.models.access_package_resource import AccessPackageResource
from msgraph.generated.models.access_package_catalog import AccessPackageCatalog
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AccessPackageResourceRequest(
request_type = AccessPackageRequestType.AdminAdd,
resource = AccessPackageResource(
origin_id = "https://microsoft.sharepoint.com/sites/Example",
origin_system = "SharePointOnline",
),
catalog = AccessPackageCatalog(
id = "beedadfe-01d5-4025-910b-84abb9369997",
),
)
result = await graph_client.identity_governance.entitlement_management.resource_requests.post(request_body)
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessPackageResourceRequest
{
RequestType = AccessPackageRequestType.AdminRemove,
Resource = new AccessPackageResource
{
Id = "1d0bb962-5bb0-4b16-a488-fda7a788b9ec",
},
Catalog = new AccessPackageCatalog
{
Id = "beedadfe-01d5-4025-910b-84abb9369997",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.EntitlementManagement.ResourceRequests.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewAccessPackageResourceRequest()
requestType := graphmodels.ADMINREMOVE_ACCESSPACKAGEREQUESTTYPE
requestBody.SetRequestType(&requestType)
resource := graphmodels.NewAccessPackageResource()
id := "1d0bb962-5bb0-4b16-a488-fda7a788b9ec"
resource.SetId(&id)
requestBody.SetResource(resource)
catalog := graphmodels.NewAccessPackageCatalog()
id := "beedadfe-01d5-4025-910b-84abb9369997"
catalog.SetId(&id)
requestBody.SetCatalog(catalog)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
resourceRequests, err := graphClient.IdentityGovernance().EntitlementManagement().ResourceRequests().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessPackageResourceRequest accessPackageResourceRequest = new AccessPackageResourceRequest();
accessPackageResourceRequest.setRequestType(AccessPackageRequestType.AdminRemove);
AccessPackageResource resource = new AccessPackageResource();
resource.setId("1d0bb962-5bb0-4b16-a488-fda7a788b9ec");
accessPackageResourceRequest.setResource(resource);
AccessPackageCatalog catalog = new AccessPackageCatalog();
catalog.setId("beedadfe-01d5-4025-910b-84abb9369997");
accessPackageResourceRequest.setCatalog(catalog);
AccessPackageResourceRequest result = graphClient.identityGovernance().entitlementManagement().resourceRequests().post(accessPackageResourceRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AccessPackageResourceRequest;
use Microsoft\Graph\Generated\Models\AccessPackageRequestType;
use Microsoft\Graph\Generated\Models\AccessPackageResource;
use Microsoft\Graph\Generated\Models\AccessPackageCatalog;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AccessPackageResourceRequest();
$requestBody->setRequestType(new AccessPackageRequestType('adminRemove'));
$resource = new AccessPackageResource();
$resource->setId('1d0bb962-5bb0-4b16-a488-fda7a788b9ec');
$requestBody->setResource($resource);
$catalog = new AccessPackageCatalog();
$catalog->setId('beedadfe-01d5-4025-910b-84abb9369997');
$requestBody->setCatalog($catalog);
$result = $graphServiceClient->identityGovernance()->entitlementManagement()->resourceRequests()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.access_package_resource_request import AccessPackageResourceRequest
from msgraph.generated.models.access_package_request_type import AccessPackageRequestType
from msgraph.generated.models.access_package_resource import AccessPackageResource
from msgraph.generated.models.access_package_catalog import AccessPackageCatalog
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AccessPackageResourceRequest(
request_type = AccessPackageRequestType.AdminRemove,
resource = AccessPackageResource(
id = "1d0bb962-5bb0-4b16-a488-fda7a788b9ec",
),
catalog = AccessPackageCatalog(
id = "beedadfe-01d5-4025-910b-84abb9369997",
),
)
result = await graph_client.identity_governance.entitlement_management.resource_requests.post(request_body)
Ejemplo 5: Creación de un accessPackageResourceRequest para actualizar una aplicación como un recurso con atributos
En el ejemplo siguiente se muestra una solicitud para actualizar un recurso en un catálogo, para una aplicación que ya se agregó como recurso, con dos atributos.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessPackageResourceRequest
{
RequestType = AccessPackageRequestType.AdminUpdate,
Resource = new AccessPackageResource
{
OriginId = "e81d7f57-0840-45e1-894b-f505c1bdcc1f",
OriginSystem = "AadApplication",
Attributes = new List<AccessPackageResourceAttribute>
{
new AccessPackageResourceAttribute
{
Destination = new AccessPackageUserDirectoryAttributeStore
{
OdataType = "microsoft.graph.accessPackageUserDirectoryAttributeStore",
},
Name = "officeLocation",
Source = new AccessPackageResourceAttributeQuestion
{
OdataType = "#microsoft.graph.accessPackageResourceAttributeQuestion",
Question = new AccessPackageTextInputQuestion
{
OdataType = "#microsoft.graph.accessPackageTextInputQuestion",
Sequence = 1,
IsRequired = true,
IsAnswerEditable = true,
Text = "What office do you work at?",
IsSingleLineQuestion = true,
RegexPattern = "[a-zA-Z]+[a-zA-Z\s]*",
},
},
},
new AccessPackageResourceAttribute
{
Destination = new AccessPackageUserDirectoryAttributeStore
{
OdataType = "microsoft.graph.accessPackageUserDirectoryAttributeStore",
},
Name = "extension_e409fedc08ab4807a9eb53ebc0d6cc9f_Expense_CostCenter",
Source = new AccessPackageResourceAttributeQuestion
{
OdataType = "#microsoft.graph.accessPackageResourceAttributeQuestion",
Question = new AccessPackageTextInputQuestion
{
OdataType = "#microsoft.graph.accessPackageTextInputQuestion",
IsRequired = false,
Text = "What is your cost center number?",
Sequence = 0,
IsSingleLineQuestion = true,
RegexPattern = "[0-9]*",
},
},
},
},
},
Catalog = new AccessPackageCatalog
{
Id = "beedadfe-01d5-4025-910b-84abb9369997",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.EntitlementManagement.ResourceRequests.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessPackageResourceRequest accessPackageResourceRequest = new AccessPackageResourceRequest();
accessPackageResourceRequest.setRequestType(AccessPackageRequestType.AdminUpdate);
AccessPackageResource resource = new AccessPackageResource();
resource.setOriginId("e81d7f57-0840-45e1-894b-f505c1bdcc1f");
resource.setOriginSystem("AadApplication");
LinkedList<AccessPackageResourceAttribute> attributes = new LinkedList<AccessPackageResourceAttribute>();
AccessPackageResourceAttribute accessPackageResourceAttribute = new AccessPackageResourceAttribute();
AccessPackageUserDirectoryAttributeStore destination = new AccessPackageUserDirectoryAttributeStore();
destination.setOdataType("microsoft.graph.accessPackageUserDirectoryAttributeStore");
accessPackageResourceAttribute.setDestination(destination);
accessPackageResourceAttribute.setName("officeLocation");
AccessPackageResourceAttributeQuestion source = new AccessPackageResourceAttributeQuestion();
source.setOdataType("#microsoft.graph.accessPackageResourceAttributeQuestion");
AccessPackageTextInputQuestion question = new AccessPackageTextInputQuestion();
question.setOdataType("#microsoft.graph.accessPackageTextInputQuestion");
question.setSequence(1);
question.setIsRequired(true);
question.setIsAnswerEditable(true);
question.setText("What office do you work at?");
question.setIsSingleLineQuestion(true);
question.setRegexPattern("[a-zA-Z]+[a-zA-Z\s]*");
source.setQuestion(question);
accessPackageResourceAttribute.setSource(source);
attributes.add(accessPackageResourceAttribute);
AccessPackageResourceAttribute accessPackageResourceAttribute1 = new AccessPackageResourceAttribute();
AccessPackageUserDirectoryAttributeStore destination1 = new AccessPackageUserDirectoryAttributeStore();
destination1.setOdataType("microsoft.graph.accessPackageUserDirectoryAttributeStore");
accessPackageResourceAttribute1.setDestination(destination1);
accessPackageResourceAttribute1.setName("extension_e409fedc08ab4807a9eb53ebc0d6cc9f_Expense_CostCenter");
AccessPackageResourceAttributeQuestion source1 = new AccessPackageResourceAttributeQuestion();
source1.setOdataType("#microsoft.graph.accessPackageResourceAttributeQuestion");
AccessPackageTextInputQuestion question1 = new AccessPackageTextInputQuestion();
question1.setOdataType("#microsoft.graph.accessPackageTextInputQuestion");
question1.setIsRequired(false);
question1.setText("What is your cost center number?");
question1.setSequence(0);
question1.setIsSingleLineQuestion(true);
question1.setRegexPattern("[0-9]*");
source1.setQuestion(question1);
accessPackageResourceAttribute1.setSource(source1);
attributes.add(accessPackageResourceAttribute1);
resource.setAttributes(attributes);
accessPackageResourceRequest.setResource(resource);
AccessPackageCatalog catalog = new AccessPackageCatalog();
catalog.setId("beedadfe-01d5-4025-910b-84abb9369997");
accessPackageResourceRequest.setCatalog(catalog);
AccessPackageResourceRequest result = graphClient.identityGovernance().entitlementManagement().resourceRequests().post(accessPackageResourceRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AccessPackageResourceRequest;
use Microsoft\Graph\Generated\Models\AccessPackageRequestType;
use Microsoft\Graph\Generated\Models\AccessPackageResource;
use Microsoft\Graph\Generated\Models\AccessPackageResourceAttribute;
use Microsoft\Graph\Generated\Models\AccessPackageUserDirectoryAttributeStore;
use Microsoft\Graph\Generated\Models\AccessPackageResourceAttributeQuestion;
use Microsoft\Graph\Generated\Models\AccessPackageTextInputQuestion;
use Microsoft\Graph\Generated\Models\AccessPackageCatalog;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AccessPackageResourceRequest();
$requestBody->setRequestType(new AccessPackageRequestType('adminUpdate'));
$resource = new AccessPackageResource();
$resource->setOriginId('e81d7f57-0840-45e1-894b-f505c1bdcc1f');
$resource->setOriginSystem('AadApplication');
$attributesAccessPackageResourceAttribute1 = new AccessPackageResourceAttribute();
$attributesAccessPackageResourceAttribute1Destination = new AccessPackageUserDirectoryAttributeStore();
$attributesAccessPackageResourceAttribute1Destination->setOdataType('microsoft.graph.accessPackageUserDirectoryAttributeStore');
$attributesAccessPackageResourceAttribute1->setDestination($attributesAccessPackageResourceAttribute1Destination);
$attributesAccessPackageResourceAttribute1->setName('officeLocation');
$attributesAccessPackageResourceAttribute1Source = new AccessPackageResourceAttributeQuestion();
$attributesAccessPackageResourceAttribute1Source->setOdataType('#microsoft.graph.accessPackageResourceAttributeQuestion');
$attributesAccessPackageResourceAttribute1SourceQuestion = new AccessPackageTextInputQuestion();
$attributesAccessPackageResourceAttribute1SourceQuestion->setOdataType('#microsoft.graph.accessPackageTextInputQuestion');
$attributesAccessPackageResourceAttribute1SourceQuestion->setSequence(1);
$attributesAccessPackageResourceAttribute1SourceQuestion->setIsRequired(true);
$attributesAccessPackageResourceAttribute1SourceQuestion->setIsAnswerEditable(true);
$attributesAccessPackageResourceAttribute1SourceQuestion->setText('What office do you work at?');
$attributesAccessPackageResourceAttribute1SourceQuestion->setIsSingleLineQuestion(true);
$attributesAccessPackageResourceAttribute1SourceQuestion->setRegexPattern('[a-zA-Z]+[a-zA-Z\s]*');
$attributesAccessPackageResourceAttribute1Source->setQuestion($attributesAccessPackageResourceAttribute1SourceQuestion);
$attributesAccessPackageResourceAttribute1->setSource($attributesAccessPackageResourceAttribute1Source);
$attributesArray []= $attributesAccessPackageResourceAttribute1;
$attributesAccessPackageResourceAttribute2 = new AccessPackageResourceAttribute();
$attributesAccessPackageResourceAttribute2Destination = new AccessPackageUserDirectoryAttributeStore();
$attributesAccessPackageResourceAttribute2Destination->setOdataType('microsoft.graph.accessPackageUserDirectoryAttributeStore');
$attributesAccessPackageResourceAttribute2->setDestination($attributesAccessPackageResourceAttribute2Destination);
$attributesAccessPackageResourceAttribute2->setName('extension_e409fedc08ab4807a9eb53ebc0d6cc9f_Expense_CostCenter');
$attributesAccessPackageResourceAttribute2Source = new AccessPackageResourceAttributeQuestion();
$attributesAccessPackageResourceAttribute2Source->setOdataType('#microsoft.graph.accessPackageResourceAttributeQuestion');
$attributesAccessPackageResourceAttribute2SourceQuestion = new AccessPackageTextInputQuestion();
$attributesAccessPackageResourceAttribute2SourceQuestion->setOdataType('#microsoft.graph.accessPackageTextInputQuestion');
$attributesAccessPackageResourceAttribute2SourceQuestion->setIsRequired(false);
$attributesAccessPackageResourceAttribute2SourceQuestion->setText('What is your cost center number?');
$attributesAccessPackageResourceAttribute2SourceQuestion->setSequence(0);
$attributesAccessPackageResourceAttribute2SourceQuestion->setIsSingleLineQuestion(true);
$attributesAccessPackageResourceAttribute2SourceQuestion->setRegexPattern('[0-9]*');
$attributesAccessPackageResourceAttribute2Source->setQuestion($attributesAccessPackageResourceAttribute2SourceQuestion);
$attributesAccessPackageResourceAttribute2->setSource($attributesAccessPackageResourceAttribute2Source);
$attributesArray []= $attributesAccessPackageResourceAttribute2;
$resource->setAttributes($attributesArray);
$requestBody->setResource($resource);
$catalog = new AccessPackageCatalog();
$catalog->setId('beedadfe-01d5-4025-910b-84abb9369997');
$requestBody->setCatalog($catalog);
$result = $graphServiceClient->identityGovernance()->entitlementManagement()->resourceRequests()->post($requestBody)->wait();