package accessrules import ( "context" "encoding/xml" "time" "lc/common/onvif/soap" ) // against "unused imports" var _ time.Time var _ xml.Name // GetServiceCapabilities type type GetServiceCapabilities struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl GetServiceCapabilities"` } // GetServiceCapabilitiesResponse type type GetServiceCapabilitiesResponse struct { XMLName xml.Name `xml:"GetServiceCapabilitiesResponse"` // The capability response message contains the requested access rules // service capabilities using a hierarchical XML capability structure. // Capabilities ServiceCapabilities `xml:"Capabilities,omitempty"` } // GetAccessProfileInfo type type GetAccessProfileInfo struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl GetAccessProfileInfo"` // Tokens of AccessProfileInfo items to get. Token []ReferenceToken `xml:"http://www.onvif.org/ver10/accessrules/wsdl Token,omitempty"` } // GetAccessProfileInfoResponse type type GetAccessProfileInfoResponse struct { XMLName xml.Name `xml:"GetAccessProfileInfoResponse"` // List of AccessProfileInfo items. AccessProfileInfo []AccessProfileInfo `xml:"AccessProfileInfo,omitempty"` } // GetAccessProfileInfoList type type GetAccessProfileInfoList struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl GetAccessProfileInfoList"` // Maximum number of entries to return. If not specified, less than one // or higher than what the device supports, the number of items is determined by the // device. // Limit int32 `xml:"http://www.onvif.org/ver10/schema Limit,omitempty"` // Start returning entries from this start reference. If not specified, // entries shall start from the beginning of the dataset. // StartReference string `xml:"http://www.onvif.org/ver10/accessrules/wsdl StartReference,omitempty"` } // GetAccessProfileInfoListResponse type type GetAccessProfileInfoListResponse struct { XMLName xml.Name `xml:"GetAccessProfileInfoListResponse"` // StartReference to use in next call to get the following items. If // absent, no more items to get. // NextStartReference string `xml:"NextStartReference,omitempty"` // List of AccessProfileInfo items. AccessProfileInfo []AccessProfileInfo `xml:"AccessProfileInfo,omitempty"` } // GetAccessProfiles type type GetAccessProfiles struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl GetAccessProfiles"` // Tokens of AccessProfile items to get. Token []ReferenceToken `xml:"http://www.onvif.org/ver10/accessrules/wsdl Token,omitempty"` } // GetAccessProfilesResponse type type GetAccessProfilesResponse struct { XMLName xml.Name `xml:"GetAccessProfilesResponse"` // List of Access Profile items. AccessProfile []AccessProfile `xml:"AccessProfile,omitempty"` } // GetAccessProfileList type type GetAccessProfileList struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl GetAccessProfileList"` // Maximum number of entries to return. If not specified, less than one // or higher than what the device supports, the number of items is determined by the // device. // Limit int32 `xml:"http://www.onvif.org/ver10/schema Limit,omitempty"` // Start returning entries from this start reference. If not specified, // entries shall start from the beginning of the dataset. // StartReference string `xml:"http://www.onvif.org/ver10/accessrules/wsdl StartReference,omitempty"` } // GetAccessProfileListResponse type type GetAccessProfileListResponse struct { XMLName xml.Name `xml:"GetAccessProfileListResponse"` // StartReference to use in next call to get the following items. If // absent, no more items to get. // NextStartReference string `xml:"NextStartReference,omitempty"` // List of Access Profile items. AccessProfile []AccessProfile `xml:"AccessProfile,omitempty"` } // CreateAccessProfile type type CreateAccessProfile struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl CreateAccessProfile"` // The AccessProfile to create. AccessProfile AccessProfile `xml:"http://www.onvif.org/ver10/accessrules/wsdl AccessProfile,omitempty"` } // CreateAccessProfileResponse type type CreateAccessProfileResponse struct { XMLName xml.Name `xml:"CreateAccessProfileResponse"` // The Token of created AccessProfile. Token ReferenceToken `xml:"Token,omitempty"` } // ModifyAccessProfile type type ModifyAccessProfile struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl ModifyAccessProfile"` // The details of Access Profile AccessProfile AccessProfile `xml:"http://www.onvif.org/ver10/accessrules/wsdl AccessProfile,omitempty"` } // ModifyAccessProfileResponse type type ModifyAccessProfileResponse struct { XMLName xml.Name `xml:"ModifyAccessProfileResponse"` } // SetAccessProfile type type SetAccessProfile struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl SetAccessProfile"` // The AccessProfile item to create or modify AccessProfile AccessProfile `xml:"http://www.onvif.org/ver10/accessrules/wsdl AccessProfile,omitempty"` } // SetAccessProfileResponse type type SetAccessProfileResponse struct { XMLName xml.Name `xml:"SetAccessProfileResponse"` } // DeleteAccessProfile type type DeleteAccessProfile struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl DeleteAccessProfile"` // The token of the access profile to delete. Token ReferenceToken `xml:"http://www.onvif.org/ver10/accessrules/wsdl Token,omitempty"` } // DeleteAccessProfileResponse type type DeleteAccessProfileResponse struct { XMLName xml.Name `xml:"DeleteAccessProfileResponse"` } // ServiceCapabilities type type ServiceCapabilities struct { XMLName xml.Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl Capabilities"` // // The maximum number of entries returned by a single GetList or Get // request. The device shall never return more than this number of entities in a single // response. // MaxLimit uint32 `xml:"http://www.onvif.org/ver10/schema MaxLimit,attr,omitempty"` // // Indicates the maximum number of access profiles supported by the device. // MaxAccessProfiles uint32 `xml:"http://www.onvif.org/ver10/schema MaxAccessProfiles,attr,omitempty"` // // Indicates the maximum number of access policies per access profile supported by the device. // MaxAccessPoliciesPerAccessProfile uint32 `xml:"http://www.onvif.org/ver10/schema MaxAccessPoliciesPerAccessProfile,attr,omitempty"` // // Indicates whether or not several access policies can refer to the same access point in an // access profile. // MultipleSchedulesPerAccessPointSupported bool `xml:"http://www.onvif.org/ver10/accessrules/wsdl MultipleSchedulesPerAccessPointSupported,attr,omitempty"` // // Indicates that the client is allowed to supply the token when creating access profiles. To // enable the use of the command SetAccessProfile, the value must be set to true. // ClientSuppliedTokenSupported bool `xml:"http://www.onvif.org/ver10/accessrules/wsdl ClientSuppliedTokenSupported,attr,omitempty"` } // AccessPolicy type type AccessPolicy struct { // Reference to the schedule used by the access policy. ScheduleToken ReferenceToken `xml:"http://www.onvif.org/ver10/accessrules/wsdl ScheduleToken,omitempty"` // // Reference to the entity used by the rule engine, the entity type may be specified by the // optional EntityType field explained below but is typically an access point. // Entity ReferenceToken `xml:"http://www.onvif.org/ver10/accessrules/wsdl Entity,omitempty"` // // Optional entity type; if missing, an access point type as defined by the ONVIF Access // Control Service Specification should be assumed. This can also be represented by the // QName value “tac:AccessPoint” where tac is the namespace of ONVIF Access Control // Service Specification. This field is provided for future extensions; it will allow an // access policy being extended to cover entity types other than access points as well. // EntityType QName `xml:"http://www.onvif.org/ver10/accessrules/wsdl EntityType,omitempty"` Extension AccessPolicyExtension `xml:"http://www.onvif.org/ver10/accessrules/wsdl Extension,omitempty"` } // AccessPolicyExtension type type AccessPolicyExtension struct { } // AccessProfileInfo type type AccessProfileInfo struct { *DataEntity // A user readable name. It shall be up to 64 characters. // Name Name `xml:"http://www.onvif.org/ver10/accessrules/wsdl Name,omitempty"` // User readable description for the access profile. It shall be up // to 1024 characters. // Description Description `xml:"http://www.onvif.org/ver10/accessrules/wsdl Description,omitempty"` } // AccessProfile type type AccessProfile struct { *AccessProfileInfo // A list of access policy structures, where each access policy // defines during which schedule an access point can be accessed. // AccessPolicy []AccessPolicy `xml:"http://www.onvif.org/ver10/accessrules/wsdl AccessPolicy,omitempty"` Extension AccessProfileExtension `xml:"http://www.onvif.org/ver10/accessrules/wsdl Extension,omitempty"` } // AccessProfileExtension type type AccessProfileExtension struct { } // Type used to reference logical and physical entities. // ReferenceToken type type ReferenceToken string // Type used for names of logical and physical entities. // Name type type Name string // Description is optional and the maximum length is device specific. // If the length is more than maximum length, it is silently chopped to the maximum length // supported by the device/service (which may be 0). // // Description type type Description string // Type used to represent the numbers from 1 ,2 , 3,... // DataEntity type type DataEntity struct { // A service-unique identifier of the item. Token ReferenceToken `xml:"token,attr,omitempty"` } // AccessRulesPort type type AccessRulesPort interface { /* This operation returns the capabilities of the access rules service. */ GetServiceCapabilities(request *GetServiceCapabilities) (*GetServiceCapabilitiesResponse, error) GetServiceCapabilitiesContext(ctx context.Context, request *GetServiceCapabilities) (*GetServiceCapabilitiesResponse, error) /* This operation requests a list of AccessProfileInfo items matching the given tokens. The device shall ignore tokens it cannot resolve and shall return an empty list if there are no items matching the specified tokens. The device shall not return a fault in this case. If the number of requested items is greater than MaxLimit, a TooManyItems fault shall be returned. */ GetAccessProfileInfo(request *GetAccessProfileInfo) (*GetAccessProfileInfoResponse, error) GetAccessProfileInfoContext(ctx context.Context, request *GetAccessProfileInfo) (*GetAccessProfileInfoResponse, error) /* This operation requests a list of all of AccessProfileInfo items provided by the device. A call to this method shall return a StartReference when not all data is returned and more data is available. The reference shall be valid for retrieving the next set of data. The number of items returned shall not be greater than the Limit parameter. */ GetAccessProfileInfoList(request *GetAccessProfileInfoList) (*GetAccessProfileInfoListResponse, error) GetAccessProfileInfoListContext(ctx context.Context, request *GetAccessProfileInfoList) (*GetAccessProfileInfoListResponse, error) /* This operation returns the specified access profile item matching the given tokens. The device shall ignore tokens it cannot resolve and shall return an empty list if there are no items matching specified tokens. The device shall not return a fault in this case. If the number of requested items is greater than MaxLimit, a TooManyItems fault shall be returned. */ GetAccessProfiles(request *GetAccessProfiles) (*GetAccessProfilesResponse, error) GetAccessProfilesContext(ctx context.Context, request *GetAccessProfiles) (*GetAccessProfilesResponse, error) /* This operation requests a list of all of access profile items provided by the device. A call to this method shall return a StartReference when not all data is returned and more data is available. The reference shall be valid for retrieving the next set of data. The number of items returned shall not be greater than the Limit parameter. */ GetAccessProfileList(request *GetAccessProfileList) (*GetAccessProfileListResponse, error) GetAccessProfileListContext(ctx context.Context, request *GetAccessProfileList) (*GetAccessProfileListResponse, error) /* This operation creates the specified access profile in the device. The token field of the access profile shall be empty, the service shall allocate a token for the access profile. The allocated token shall be returned in the response. If the client sends any value in the token field, the device shall return InvalidArgVal as generic fault code. In an access profile, if several access policies specifying different schedules for the same access point will result in a union of the schedules. */ CreateAccessProfile(request *CreateAccessProfile) (*CreateAccessProfileResponse, error) CreateAccessProfileContext(ctx context.Context, request *CreateAccessProfile) (*CreateAccessProfileResponse, error) /* This operation will modify the access profile for the specified access profile token. The token of the access profile to modify is specified in the token field of the AccessProile structure and shall not be empty. All other fields in the structure shall overwrite the fields in the specified access profile. If several access policies specifying different schedules for the same access point will result in a union of the schedules. If the device could not store the access profile information then a fault will be generated. */ ModifyAccessProfile(request *ModifyAccessProfile) (*ModifyAccessProfileResponse, error) ModifyAccessProfileContext(ctx context.Context, request *ModifyAccessProfile) (*ModifyAccessProfileResponse, error) /* This operation will synchronize an access profile in a client with the device. If an access profile with the specified token does not exist in the device, the access profile is created. If an access profile with the specified token exists, then the access profile is modified. A call to this method takes an access profile structure as input parameter. The token field of the access profile must not be empty. A device that signals support for the ClientSuppliedTokenSupported capability shall implement this command. */ SetAccessProfile(request *SetAccessProfile) (*SetAccessProfileResponse, error) SetAccessProfileContext(ctx context.Context, request *SetAccessProfile) (*SetAccessProfileResponse, error) /* This operation will delete the specified access profile. If the access profile is deleted, all access policies associated to the access profile will also be deleted. If it is associated with one or more entities some devices may not be able to delete the access profile, and consequently a ReferenceInUse fault shall be generated. */ DeleteAccessProfile(request *DeleteAccessProfile) (*DeleteAccessProfileResponse, error) DeleteAccessProfileContext(ctx context.Context, request *DeleteAccessProfile) (*DeleteAccessProfileResponse, error) } // accessRulesPort type type accessRulesPort struct { client *soap.Client xaddr string } func NewAccessRulesPort(client *soap.Client, xaddr string) AccessRulesPort { return &accessRulesPort{ client: client, xaddr: xaddr, } } func (service *accessRulesPort) GetServiceCapabilitiesContext(ctx context.Context, request *GetServiceCapabilities) (*GetServiceCapabilitiesResponse, error) { response := new(GetServiceCapabilitiesResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/GetServiceCapabilities", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) GetServiceCapabilities(request *GetServiceCapabilities) (*GetServiceCapabilitiesResponse, error) { return service.GetServiceCapabilitiesContext( context.Background(), request, ) } func (service *accessRulesPort) GetAccessProfileInfoContext(ctx context.Context, request *GetAccessProfileInfo) (*GetAccessProfileInfoResponse, error) { response := new(GetAccessProfileInfoResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/GetAccessProfileInfo", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) GetAccessProfileInfo(request *GetAccessProfileInfo) (*GetAccessProfileInfoResponse, error) { return service.GetAccessProfileInfoContext( context.Background(), request, ) } func (service *accessRulesPort) GetAccessProfileInfoListContext(ctx context.Context, request *GetAccessProfileInfoList) (*GetAccessProfileInfoListResponse, error) { response := new(GetAccessProfileInfoListResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/GetAccessProfileInfoList", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) GetAccessProfileInfoList(request *GetAccessProfileInfoList) (*GetAccessProfileInfoListResponse, error) { return service.GetAccessProfileInfoListContext( context.Background(), request, ) } func (service *accessRulesPort) GetAccessProfilesContext(ctx context.Context, request *GetAccessProfiles) (*GetAccessProfilesResponse, error) { response := new(GetAccessProfilesResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/GetAccessProfiles", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) GetAccessProfiles(request *GetAccessProfiles) (*GetAccessProfilesResponse, error) { return service.GetAccessProfilesContext( context.Background(), request, ) } func (service *accessRulesPort) GetAccessProfileListContext(ctx context.Context, request *GetAccessProfileList) (*GetAccessProfileListResponse, error) { response := new(GetAccessProfileListResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/GetAccessProfileList", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) GetAccessProfileList(request *GetAccessProfileList) (*GetAccessProfileListResponse, error) { return service.GetAccessProfileListContext( context.Background(), request, ) } func (service *accessRulesPort) CreateAccessProfileContext(ctx context.Context, request *CreateAccessProfile) (*CreateAccessProfileResponse, error) { response := new(CreateAccessProfileResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/CreateAccessProfile", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) CreateAccessProfile(request *CreateAccessProfile) (*CreateAccessProfileResponse, error) { return service.CreateAccessProfileContext( context.Background(), request, ) } func (service *accessRulesPort) ModifyAccessProfileContext(ctx context.Context, request *ModifyAccessProfile) (*ModifyAccessProfileResponse, error) { response := new(ModifyAccessProfileResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/ModifyAccessProfile", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) ModifyAccessProfile(request *ModifyAccessProfile) (*ModifyAccessProfileResponse, error) { return service.ModifyAccessProfileContext( context.Background(), request, ) } func (service *accessRulesPort) SetAccessProfileContext(ctx context.Context, request *SetAccessProfile) (*SetAccessProfileResponse, error) { response := new(SetAccessProfileResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/SetAccessProfile", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) SetAccessProfile(request *SetAccessProfile) (*SetAccessProfileResponse, error) { return service.SetAccessProfileContext( context.Background(), request, ) } func (service *accessRulesPort) DeleteAccessProfileContext(ctx context.Context, request *DeleteAccessProfile) (*DeleteAccessProfileResponse, error) { response := new(DeleteAccessProfileResponse) err := service.client.CallContext(ctx, service.xaddr, "http://www.onvif.org/ver10/accessrules/wsdl/DeleteAccessProfile", request, response) if err != nil { return nil, err } return response, nil } func (service *accessRulesPort) DeleteAccessProfile(request *DeleteAccessProfile) (*DeleteAccessProfileResponse, error) { return service.DeleteAccessProfileContext( context.Background(), request, ) } // QName type type QName string