Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Action bound to abstract entity type is not present in OpenAPI output when using hidi to convert from CSDL

Aberta
#720 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
csharp, openapi

Direção de pesquisa

Reproduza o problema com o comando Hidi usando a entrada CSDL referenciada e conversion-settings/openapi.json. Compare o YAML gerado com as ações abstratas de protectionUnitBase e verifique se /offboard e /cancelOffboard estão ausentes. Está concluído quando os dois URIs de solicitação aparecem na saída OpenAPI.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Describe the bug
When generating the OpenAPI description for Microsoft Graph Beta the offboard and cancelOffboard routes are not generated for the protectionUnit entity

Reproduction Steps

In a PowerShell terminal with dotnet 9

dotnet tool install --global Microsoft.OpenApi.Hidi
git clone https://github.com/microsoftgraph/msgraph-metadata.git
hidi transform --csdl .\msgraph-metadata\clean_beta_metadata\cleanMetadata.xml --output .\beta-enhanced-restore.yaml --co  --version "3.0" --metadata-version "beta" --log-level Trace --format yaml --settings-path .\msgraph-metadata\conversion-settings\openapi.json

Alternatively if you clone the internal AD-AggregatorService-Workloads you can use a smaller source csdl file:

hidi transform --csdl .\AD-AggregatorService-Workloads\Workloads\Microsoft.EnhancedRestore\override\schema-Prod-beta.csdl --output .\beta-enhanced-restore-3.1.yaml --co  --version "3.1" --metadata-version "beta" --log-level Trace --format yaml

When opening the newly created beta-enhanced-restore.yaml you will not find a path that includes /cancelOffboard

When examining the smaller CSDL fragment for the Microsoft.EnhancedRestore I can see that the impacted Actions are all bound to an abstract type.

      <EntityType Name="protectionUnitBase" BaseType="microsoft.graph.entity" Abstract="true" >
        <Property Name="policyId" Type="Edm.String" />
        <Property Name="status" Type="self.protectionUnitStatus" />
        <Property Name="createdDateTime" Type="Edm.DateTimeOffset" />
        <Property Name="createdBy" Type="microsoft.graph.identitySet" />
        <Property Name="lastModifiedDateTime" Type="Edm.DateTimeOffset" />
        <Property Name="lastModifiedBy" Type="microsoft.graph.identitySet" />
        <Property Name="protectionSources" Type="self.protectionSource" Nullable="false" />
        <Property Name="error" Type="microsoft.graph.publicError" />
        <Property Name="offboardRequestedDateTime" Type="Edm.DateTimeOffset" />
      </EntityType>
      <EntityType Name="protectionRuleBase" BaseType="microsoft.graph.entity" Abstract="true" >
        <Property Name="status" Type="self.protectionRuleStatus" />
        <Property Name="createdDateTime" Type="Edm.DateTimeOffset" />
        <Property Name="createdBy" Type="microsoft.graph.identitySet" />
        <Property Name="lastModifiedDateTime" Type="Edm.DateTimeOffset" />
        <Property Name="lastModifiedBy" Type="microsoft.graph.identitySet" />
        <Property Name="error" Type="microsoft.graph.publicError" />
        <Property Name="isAutoApplyEnabled" Type="Edm.Boolean" />
      </EntityType>
      <Action Name="run" IsBound="true">
        <Parameter Name="bindingParameter" Type="self.protectionRuleBase"/>
        <ReturnType Type="self.protectionRuleBase"/>
      </Action>
      <Action Name="deleteAndUnprotect" IsBound="true" >
        <Parameter Name="bindingParameter" Type="self.protectionRuleBase"/>
        <ReturnType Type="self.protectionRuleBase"/>
      </Action>
    <Action Name="offboard" IsBound="true">
      <Parameter Name="bindingParameter" Type="self.protectionUnitBase"/>
      <ReturnType Type="self.protectionUnitBase"/>
    </Action>
    <Action Name="cancelOffboard" IsBound="true" >
      <Parameter Name="bindingParameter" Type="self.protectionUnitBase"/>
      <ReturnType Type="self.protectionUnitBase"/>
    </Action>

Expected behavior
the /offboard and /cancelOffboard request URIs are described in the OpenAPI output.

Additional context
This is an issue preventing the generated SDKs for Microsoft Graph from including these requests.

Linguagem predominante
C#
Estrelas
240
Forks
70
Merge médio
2h 8min
PRs com merge (30d)
9

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de microsoft/OpenAPI.NET.OData

Todas as issues de microsoft/OpenAPI.NET.OData

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.