Office 365 Multi Geo - Issue with fetching PreferredDataLocation property for a user from Azure Active Directory - azure-active-directory

I am trying to fetch PreferredDataLocation (PDL) for a user from Azure Active Directory.
I used Graph v1.0 but do not receive PDL value in the response:
https://graph.microsoft.com/v1.0/users/{upn}?$select=preferredDataLocation
But when I use Graph Beta, I receive PDL value in the response:
https://graph.microsoft.com/beta/users/{upn}?$select=preferredDataLocation
Does that mean that fetching PDL is not supported in Microsoft Graph v1.0?
I also tried using Microsoft Graph SDK, but there is no property exposed for getting PDL.
Is there a way we can fetch PDL using MS Graph SDK?

The PreferredDataLocation property of a User is only returned/supported by the /beta endpoints. Since the SDKs currently only support the production API, PreferredDataLocation isn't exposed in the object model.
Once this feature makes it into v1.0, subsequent builds of the SDK should include it. If there is an unreasonable delay in a new SDK build, you can also request that it be added. From the SDK docs:
When new features are added to the library
Generation happens as part of a manual process that occurs once a significant change or set of changes has been added to the Graph. This may include:
A new workload comes to v1.0 of Graph (Microsoft Teams, Batching, etc.)
There is a significant addition of functionality (Delta Queries, etc.)
However, this is evaluated on a case-by-case basis. If the library is missing v1.0 Graph functionality that you wish to utilize, please file an issue.

Related

Azure Form Recognizer - Copy model from QA to PROD

Our team has built more than 1000+ models in development environment and tested the output. We moved the models from QA to Production using StartModelCopyTo method using Form Recognizer client SDK. During each copy model, code is written such a way that if PercentageCompleted is 100%, then move to next model. All 1000+ models copied to production service. Now the problem is, when we use GetCustomModels method to list all models, all models comes as null, but if I use model Id, it returns all details. Has anyone faced this issue? Business team considers this as an issue and not ready to sign off. We are facing other issues with the Form Recognizer service too.
This could be related to the SDK/REST API version you are using for the get operation. Can you validate that you are using the API version and SDK that corresponds to the V2.1 or v3 API based on which version the mode was trained with?
Direct message if you are still having trouble.
Microsoft support came back and said that copy model method has threshold of 1 per minute. Now we created a delay of 1 per minute and it works.

Custom Connector - OData Queries - Make them pretty?

I'm trying to write a custom connector Swagger file for Logic Apps and am having problems. The API I want to connect to only accepts OData queries so all my parameters are asking for $filter and the user has to type in Name eq 'Name' and Id eq 1. Is there a way to make this prettier and just ask them for the parameters directly?
I tried just adding them in (Name, Id, Active) but it puts them in the url like ?Name=. Not in the OData syntax. Is there any way to do what I want to do?
The custom connectors are designed to work as interfaces to existing REST APIs and the UI is more of a 1-1 mapping of their specification.
AFAIK, there is no way to direct customize how the connectors work but you could achieve it by proxy request through your own service.
You simply need a service which accepts requests the way you want and translate them accordingly for the actual service.
Azure API Management is probably the best candidate for this. As a bonus, once you have the APIs you need designed, you get an OpenAPI spec that you could use for the custom connector.
Depending on your expected load, you might have to use its Consumption Tier but do note that its currently in preview.
The alternatives could be having your own API hosted on Azure App Service or Azure Functions instead (or even Functions Proxies), again depending on your expected load.
PS: The downside of doing this is the obvious maintenance that you would have to uptake in case your requirements change and/or the backend API changes.

Get AzureAD devices non-interactively - using API

I need to retrieve all devices in an AzureAD from a background-application which needs to run without user interaction.
My research so far has come up empty, with Graph API as the only option to get the actual data - but doesn't support non-interactive scenarios. :(
Question
Is there a way/API to get all devices in a non-interavtive way?
Research
Graph API:
https://learn.microsoft.com/en-gb/graph/api/intune-devices-manageddevice-get?view=graph-rest-1.0
Does not support non-interactive screnarios, as confirmed in above screenshot from the documentation and the below links:
https://microsoftintune.uservoice.com/forums/291681-ideas/suggestions/18474520-intune-graph-api-should-be-accessible-non-interact
https://social.technet.microsoft.com/Forums/en-US/1636481c-7101-43d4-9f60-e09cdd65b4b0/noninteractive-access-to-intune-api?forum=microsoftintuneprod
MS Graph API - ManagedDevices obtaining Scope
Azure AD Graph API
https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/api-catalog
Not recommended by MS - and doesn't seem to have a way to get devices either.
You can use the following "GET https://graph.microsoft.com/v1.0/devices". This call retrieves the list of device objects registered in the organization.
This call is supported in non-interactive scenarios as well. The application will need one of the following permissions.
Application :
Device.Read.All, Directory.Read.All
You can also check all the operations available in MS Graph for a device object here.

WSO2 Identity Server XML config of service providers

My company is using WSO2 IS version 5.2. We have implemented it clustered with 1 manager node and 3 worker nodes. We do not use multiple tenants. We are implementing a SAML approach to authentication. Our first implementation was in a development environment which included quite a bit of manual (UI based) configuration. The following was done using the management console:
adding custom claims
adding service providers (we have 3 currently)
assigning custom claims to SPs
configure the resident IdP
We now must setup and configure 50 more development, QA and UAT environments. We would like to be able to do this entirely through XML configuration with no human data entry. Is there a specific resource that can walk me through the above 4 items? Note: We have determined how to add our own custom claims through xml config. So item #1 is no longer an issue but I included it for reference. I am really mostly interested in items 2,3 and 4.
We did find the following topic in the docs:
https://docs.wso2.com/display/IS520/Configuring+a+SP+and+IdP+Using+Configuration+Files
However, the above link does not go far enough to explain how to map custom claim to SPs. We also found this which asks a very similar question but gives only part of what we are looking for.
Thanks for any assistance.
You could setup a basic environment and copy the database from the directoy conf/repository/database.

managing app engine versions through API calls

Is there anyway that I can manage the appengine versions and instances through API calls?
What I mean by managing is to start/stop/delete versions deployed to the appengine through API calls.
Is that possible by using gcloud sdk commands from command line ?
Another question , does google provide APIs (or commands) to check the status of running instances ? check if the instance is idle or not and how long its being idle
There is a beta API for managing versions and services here:
https://cloud.google.com/appengine/docs/admin-api/
The API is still beta because it's under active development; there are still a few methods and fields which aren't implemented. Shortly after those are complete, the API will be marked "v1", though v1beta4 and v1beta5 will continue to be supported for several months in transition.
For example, the API doesn't yet include operations on instances, but I expect that List/Get/Delete will be available fairly soon. Since App Engine automatically creates instances for you, there is no create instance API.
I just noticed that the most recent documentation re-skin seems to have hidden the documentation for the REST interface, so I'll drop that link there so you that you can find the currently implemented methods. (Version.Update is also implemented for a few fields, so that documentation update should be coming out very soon.)
2020 UPDATE: You can do it using the apps.services.versions api. You can stop/start a version with the PATCH method, setting the mask to "servingStatus" and in the body set the "servingStatus" field to "STOPPED"/"SERVING".
Similarly, you can use the delete/create methods to launch and remove new versions
Reference:
https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch

Resources